<template>
  <el-container class="home-container">

    <!-- 头部区域  -->
    <el-header>
        <div>
            <img src="../assets/heima.png" alt="">
            <span>电商后台管理系统</span>
        </div>
        <el-button type="info" @click="logout">退出</el-button>
    </el-header>

    <!-- 页面主体区域 -->
    <el-container>
      <!-- 侧边栏 -->
      <el-aside :width="isCollapse? '64px' : '200px' ">
          <!-- 动态绑定侧边栏的宽度实现折叠效果：
          若isCollapse为true，则被折叠 64px；若isCollapse为flase，展开 200px -->

          <div class="toggle-button" @click="toggleCollapse">|||</div>

          <!-- 侧边栏菜单区域 -->
          <el-menu
            background-color="#333744"
            text-color="#fff"
            active-text-color="#409EFF"
            :unique-opened = "true"
            :collapse="isCollapse"
            :collapse-transition = "false"
            router
            :default-active="activePath">
            <!-- active-text-color设置点击高亮颜色
            :unique-opened = "true"设置是否只保持一个子菜单的展开
            collapse 是否水平折叠收起菜单
            collapse-transition 是否开启折叠动画
            default-active= 当前激活菜单的index-->

            <!-- 这是一级菜单 -->
            <el-submenu :index="item.id +''" v-for="item in menulist" :key="item.id"><!-- 数值加字符串拼接得到字符串 -->
                <!-- 这是一级菜单的模板区 -->
              <template slot="title">
                <!-- 图标 -->
                <i :class="iconsObj[item.id]"></i>
                <!-- 文本 -->
                <span>{{item.authName}}</span>
             </template>

               <!-- 这是二级菜单 -->
                <el-menu-item :index=" '/' + subItem.path" v-for="subItem in item.children" 
                :key="subItem.id" @click="saveNavState('/' + subItem.path)">
                    <template slot="title">
                    <!-- 图标 -->
                    <i class="el-icon-menu"></i>
                    <!-- 文本 -->
                    <span>{{subItem.authName}}</span>
                    </template>  
                </el-menu-item>

            </el-submenu>
            </el-menu>
      </el-aside>

      <!-- 右侧内容主体 -->
      <el-main>
          <!-- router-view路由占位符 -->
        <router-view></router-view>
      </el-main>

    </el-container>
  </el-container>
</template>

<script>
export default {
    data(){
        return {
            //左侧菜单数据
            menulist: [],
            //定义一个字体的对象
            iconsObj: {
                '125': 'iconfont icon-user',
                '103': 'iconfont icon-tijikongjian',
                '101': 'iconfont icon-shangpin',
                '102': 'iconfont icon-danju',
                '145': 'iconfont icon-baobiao'
            },
            //是否折叠
            isCollapse: false,
            //被激活的链接地址
            activePath:''
        }
    },
    created() {
        this.getMenuList()
        this.activePath = window.sessionStorage.getItem('activePath')
    },

    methods:{
        logout() {
            // 清空sessionStorage
            window.sessionStorage.clear()
            this.$router.push('/login');
        },
        async getMenuList() {
           const {data : res} =  await this.$http.get('menus')
           if (res.meta.status !== 200) return this.$message.error(res.meta.message)
           this.menulist = res.data
           console.log(res)
        },
        // 点击按钮，切换菜单的折叠与展开
        toggleCollapse() {
            this.isCollapse = !this.isCollapse
        },
        //保存链接的激活状态
        saveNavState(activePath) {
            window.sessionStorage.setItem('activePath',activePath)
            this.activePath = activePath
        }
    }
};   
</script>

<style lang="less" scoped>
.home-container{
    height: 100%;
}

.el-header {
  background-color: #373d41;
  display: flex; //弹性布局
  justify-content: space-between;// 均匀排列每个元素首个元素放置于起点，末尾元素放置于终点 
  padding-left:0 ; //左内边框为0，使图片贴边
  align-items: center; //居中对齐弹性盒的各项 <div> 元素：
  color: #fff;
  font-size: 20px; //文本大小
  > div {  //嵌套div“调整电商管理平台”，这样就可以设置div里的参数了
      display:flex;
      align-items: center;
      span{
          margin-left:15px ;//左边距为15px
      }
  }
}
.el-aside{
    background-color: #333744;
    .el-menu{
        border-right: none ;
    }
}

.el-main{
    background-color: #EAEDF1;
}

.iconfont {
    margin-right: 10px; //右边距为10px
}

.toggle-button{
    background-color: #4a5064;
    font-size: 10px;
    line-height: 24px;
    color: #fff;
    text-align: center; //居中对齐
    letter-spacing: 0.2em; //字间距
    cursor: pointer; //鼠标放上去从箭头变成手掌

}

</style>
